package com.miage.kangourou.client;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.miage.kangourou.client.beans.Enseignant;
import com.miage.kangourou.client.beans.Evenement;
import com.miage.kangourou.client.beans.Groupe;
import com.miage.kangourou.client.beans.Matiere;
import com.miage.kangourou.client.beans.Promo;
import com.miage.kangourou.client.beans.Salle;
import com.miage.kangourou.client.beans.TypeEvenement;
import com.miage.kangourou.client.beans.Ue;
import com.miage.kangourou.client.beans.Utilisateur;

@RemoteServiceRelativePath("getListesService")
public interface GetListesService extends RemoteService {
	public int createEvent(Evenement evenement);

	public int createEventRecurrence(Evenement evenement, Date startPeriode,
			Date endPeriode, List<Integer> joursCoches);

	public boolean deleteEvents(List<Integer> idsEventsToDelete);

	public Evenement findById(int id);

	List<Date> findCreneauxLibres(ArrayList<Integer> groupes, Date dateDebut,
			int heureDebut, int minDebut, int heureFin, int minFin);

	public List<Enseignant> getEnseignantList();

	public List<Evenement> getEvenementBetweenTwoDateAndCriteria(int idGroupe,
			int idEnseignant, int idSalle, int idMatiere, Date debut, Date fin);

	public List<Groupe> getGroupeList();

	public List<Groupe> getGroupeListFromUe(int parseInt);

	public List<Matiere> getMatiereList();

	public List<Matiere> getMatiereListFromUe(int parseInt);

	public List<Promo> getPromoList();

	public List<Salle> getSalleList();

	public List<TypeEvenement> getTypeList();

	public List<Ue> getUEList();

	public Utilisateur login(String email, String password);

	public Utilisateur loginUsingCookie(String cookie);

	public int updateEvent(Evenement evenement);

	public boolean updateEventDate(int id_event, Date debut, Date fin,
			Utilisateur util);

}
